package cn.yuanqiao.archive.Identify.service.impl;

import cn.yuanqiao.archive.Identify.domain.TenantMinganciku;
import cn.yuanqiao.archive.Identify.mapper.TenantMingancikuMapper;
import cn.yuanqiao.archive.Identify.service.ITenantMingancikuService;
import cn.yuanqiao.common.utils.DateUtils;
import cn.yuanqiao.common.utils.SecurityUtils;
import cn.yuanqiao.common.core.domain.model.LoginUser;
import com.alibaba.fastjson2.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * minganciService业务层处理
 *
 * @author 赵常飞
 * @date 2023-07-23
 */
@Service
public class TenantMingancikuServiceImpl implements ITenantMingancikuService
{
    @Autowired
    private TenantMingancikuMapper tenantMingancikuMapper;

    /**
     * 查询minganci
     *
     * @param id minganci主键
     * @return minganci
     */
    @Override
    public TenantMinganciku selectTenantMingancikuById(Long id)
    {
        TenantMinganciku ciku=new TenantMinganciku();
        ciku.setId(id);
        return tenantMingancikuMapper.selectTenantMingancikuById(ciku);
    }

    /**
     * 查询minganci列表
     *
     * @param tenantMinganciku minganci
     * @return minganci
     */
    @Override
    public List<TenantMinganciku> selectTenantMingancikuList(TenantMinganciku tenantMinganciku)
    {
        tenantMinganciku.setIsDel(0);
        return tenantMingancikuMapper.selectTenantMingancikuList(tenantMinganciku);
    }

    /**
     * 新增minganci
     *
     * @param tenantMinganciku minganci
     * @return 结果
     */
    @Override
    public int insertTenantMinganciku(TenantMinganciku tenantMinganciku)
    {
        LoginUser user = SecurityUtils.getLoginUser();
        if(user == null){
            user = new LoginUser();
            user.setUserId(1L);
        }
        tenantMinganciku.setCreateTime(DateUtils.getNowDate());
        tenantMinganciku.setIsDel(0);
        tenantMinganciku.setUpdateTime(DateUtils.getNowDate());
        tenantMinganciku.setCreatorId(user.getUserId());
        return tenantMingancikuMapper.insertTenantMinganciku(tenantMinganciku);
    }

    /**
     * 修改minganci
     *
     * @param tenantMinganciku minganci
     * @return 结果
     */
    @Override
    public int updateTenantMinganciku(TenantMinganciku tenantMinganciku)
    {
        tenantMinganciku.setUpdateTime(DateUtils.getNowDate());
        return tenantMingancikuMapper.updateTenantMinganciku(tenantMinganciku);
    }

    /**
     * 批量删除minganci
     *
     * @param ids 需要删除的minganci主键
     * @return 结果
     */
    @Override
    public int deleteTenantMingancikuByIds(Long[] ids)
    {
        return tenantMingancikuMapper.deleteTenantMingancikuByIds(ids,new TenantMinganciku().getTableName());
    }

    /**
     * 删除minganci信息
     *
     * @param id minganci主键
     * @return 结果
     */
    @Override
    public int deleteTenantMingancikuById(Long id)
    {
        return tenantMingancikuMapper.deleteTenantMingancikuById(id);
    }

    @Override
    public List getexportlist(List ids) {
        String idsql="";
        if(ids.size()==0){
        }else{
            idsql=" where id in("+ids.toString().replace("[","").replace("]","").replace(" ","")+")";
        }
        return tenantMingancikuMapper.getexportlist(idsql,new TenantMinganciku().getTableName());
    }

    @Override
    public int plxg(JSONObject json) {
        List ids=json.getJSONArray("ids");
        int state=json.getInteger("state");
        return tenantMingancikuMapper.plxg(ids,state,new TenantMinganciku().getTableName());
    }

    @Override
    public List<String> selectTenantMingancikuListString(TenantMinganciku tenantMinganciku) {
        tenantMinganciku.setIsDel(0);
        return tenantMingancikuMapper.selectTenantMingancikuListString(tenantMinganciku);
    }

    @Override
    public int importHddaMDataList(List<TenantMinganciku> dataLists) {
        int j=0;
        for (int i = 0; i <dataLists.size(); i++) {
            TenantMinganciku ciku=dataLists.get(i);
            TenantMinganciku hadciku=tenantMingancikuMapper.getcikunum(ciku.getTableName(),ciku.getName());
            if(null!=hadciku){
                j++;
                ciku.setUpdateTime(DateUtils.getNowDate());
                ciku.setId(hadciku.getId());
                tenantMingancikuMapper.updateTenantMinganciku(ciku);
            }else{
                ciku.setIsDel(0);
                tenantMingancikuMapper.insertTenantMinganciku(ciku);
            }
        }
         return j;
    }
}
